package com.ruoyi.finance.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 支付记录对象 e_payment
 *
 * @author ruoyi
 * @date 2024-11-22
 */
public class EPayment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Integer id;

    /** 交易号 */
    @Excel(name = "交易号")
    private String number;

    /** 订单类型 */
    @Excel(name = "订单类型")
    private Integer orderType;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNumber;

    /** 支付渠道 */
    @Excel(name = "支付渠道")
    private Integer paymentChannel;

    /** 应付金额 */
    @Excel(name = "应付金额")
    private BigDecimal payableAmount;

    /** 优惠金额 */
    @Excel(name = "优惠金额")
    private BigDecimal discountAmount;

    /** 实际应付 */
    @Excel(name = "实际应付")
    private BigDecimal actualPayable;

    /** 支付币种 */
    @Excel(name = "支付币种")
    private String paymentCurrency;

    /** 汇率 */
    @TableField(exist = false)
    private BigDecimal rname;


    /** 付款时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "Asia/Shanghai")
    private Date paymentTime;

    /** 付款时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "Asia/Shanghai")
    private Date closingTime;

    /** 支付状态 */
    @Excel(name = "支付状态")
    private Integer paymentStatus;

    /** 登陆用户外键 */
    @Excel(name = "登陆用户外键")
    private String cid;

    /** 汇率表外键 */
    @Excel(name = "汇率表外键")
    private Integer did;

     /** 支付金额 */
    @Excel(name = "支付金额")
    private BigDecimal paymentAmount;
    /** 寄件/派件费用 */
    @Excel(name = "寄件/派件费用")
    private BigDecimal shippingCost;
    /** 创建时间 */
     @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "Asia/Shanghai")
    @Excel(name = "创建时间")
    private Date createTime;

    /** 完成时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "Asia/Shanghai")
    @Excel(name = "完成时间")
    private Date completionTime;

    /** 会员类型 */
 @TableField(exist = false)
    private Integer memberType;

     @TableField(exist = false)
    private String phone;

     @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "Asia/Shanghai")
    private Date start1;

     @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "Asia/Shanghai")
    private Date end1;

     @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "Asia/Shanghai")
    private Date start2;

     @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "Asia/Shanghai")
    private Date end2;

    public Date getCompletionTime() {
        return completionTime;
    }

    public void setCompletionTime(Date completionTime) {
        this.completionTime = completionTime;
    }

    public Date getClosingTime() {
        return closingTime;
    }

    public void setClosingTime(Date closingTime) {
        this.closingTime = closingTime;
    }

    public Date getStart1() {
        return start1;
    }

    public void setStart1(Date start1) {
        this.start1 = start1;
    }

    public Date getEnd1() {
        return end1;
    }

    public void setEnd1(Date end1) {
        this.end1 = end1;
    }

    public Date getStart2() {
        return start2;
    }

    public void setStart2(Date start2) {
        this.start2 = start2;
    }

    public Date getEnd2() {
        return end2;
    }

    public void setEnd2(Date end2) {
        this.end2 = end2;
    }

    public BigDecimal getRname() {
        return rname;
    }

    public void setRname(BigDecimal rname) {
        this.rname = rname;
    }

    public BigDecimal getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(BigDecimal paymentAmount) {
        this.paymentAmount = paymentAmount;
    }

    public BigDecimal getShippingCost() {
        return shippingCost;
    }

    public void setShippingCost(BigDecimal shippingCost) {
        this.shippingCost = shippingCost;
    }

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Integer getMemberType() {
        return memberType;
    }

    public void setMemberType(Integer memberType) {
        this.memberType = memberType;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId()
    {
        return id;
    }
    public void setNumber(String number)
    {
        this.number = number;
    }

    public String getNumber()
    {
        return number;
    }
    public void setOrderType(Integer orderType)
    {
        this.orderType = orderType;
    }

    public Integer getOrderType()
    {
        return orderType;
    }
    public void setOrderNumber(String orderNumber)
    {
        this.orderNumber = orderNumber;
    }

    public String getOrderNumber()
    {
        return orderNumber;
    }
    public void setPaymentChannel(Integer paymentChannel)
    {
        this.paymentChannel = paymentChannel;
    }

    public Integer getPaymentChannel()
    {
        return paymentChannel;
    }
    public void setPayableAmount(BigDecimal payableAmount)
    {
        this.payableAmount = payableAmount;
    }

    public BigDecimal getPayableAmount()
    {
        return payableAmount;
    }
    public void setDiscountAmount(BigDecimal discountAmount)
    {
        this.discountAmount = discountAmount;
    }

    public BigDecimal getDiscountAmount()
    {
        return discountAmount;
    }
    public void setActualPayable(BigDecimal actualPayable)
    {
        this.actualPayable = actualPayable;
    }

    public BigDecimal getActualPayable()
    {
        return actualPayable;
    }
    public void setPaymentCurrency(String paymentCurrency)
    {
        this.paymentCurrency = paymentCurrency;
    }

    public String getPaymentCurrency()
    {
        return paymentCurrency;
    }

    public void setPaymentTime(Date paymentTime)
    {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime()
    {
        return paymentTime;
    }
    public void setPaymentStatus(Integer paymentStatus)
    {
        this.paymentStatus = paymentStatus;
    }

    public Integer getPaymentStatus()
    {
        return paymentStatus;
    }
    public void setCid(String cid)
    {
        this.cid = cid;
    }

    public String getCid()
    {
        return cid;
    }
    public void setDid(Integer did)
    {
        this.did = did;
    }

    public Integer getDid()
    {
        return did;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("number", getNumber())
            .append("orderType", getOrderType())
            .append("orderNumber", getOrderNumber())
            .append("paymentChannel", getPaymentChannel())
            .append("payableAmount", getPayableAmount())
            .append("discountAmount", getDiscountAmount())
            .append("actualPayable", getActualPayable())
            .append("paymentCurrency", getPaymentCurrency())
            .append("rname", getRname())
            .append("paymentTime", getPaymentTime())
            .append("createTime", getCreateTime())
            .append("paymentStatus", getPaymentStatus())
            .append("cid", getCid())
            .append("did", getDid())
            .append("memberType", getMemberType())
            .append("phone", getPhone())
            .append("shippingCost", getShippingCost())
            .append("paymentAmount", getPaymentAmount())
            .append("start1", getStart1())
            .append("end1", getEnd1())
            .append("start2", getStart2())
            .append("end2", getEnd2())
            .append("closingTime", getClosingTime())
            .append("completionTime", getCompletionTime())
            .toString();
    }
}
